/* 
 * File:   operacoes.h
 * Author: Saulo
 *
 * Created on 23 de Maio de 2010, 22:24
 */

#ifndef _OPERACOES_H
#define	_OPERACOES_H

#include "estruturas.h"


class operacoes {



public:
    operacoes();
    operacoes(const operacoes& orig);
    virtual ~operacoes();
    reg i_add(reg a, reg b);//1
    reg i_addinc(reg a, reg b);//2
    reg i_and(reg a, reg b);//3
    reg i_andnota(reg a, reg b);//4


    reg i_deca(reg a);//7
    reg i_inca(reg a);//8








    reg i_lsl(reg a);//18
    reg i_lsr(reg a);//19
    reg i_nand(reg a, reg b);//20
    reg i_nor(reg a, reg b);//21
    reg i_ones();//22
    reg i_or(reg a, reg b);//23
    reg i_ornotb(reg a, reg b);//24
    reg i_passa(reg a);//25
    reg i_passnota(reg a);//26

    reg i_sub(reg a, reg b);//28
    reg i_subdec(reg a, reg b);//29
    reg i_xnor(reg a, reg b);//30
    reg i_xor(reg a, reg b);//31
    reg i_zeros();//32

    //funcoes auxiliares
    reg i_addi(reg a, int b);
    unsigned soma(unsigned* carryOut, unsigned carryIn, unsigned a, unsigned b);
    reg soma16bits(reg A, reg B);

private:

};

#endif	/* _OPERACOES_H */

